#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>
typedef int DataType;
typedef  struct Queue
{
	QNode* phead;
	QNode* tail;
	 int size;
 }Queue;

typedef struct QNode
{
	struct QNode* next;
	DataType val;
}QNode;

void QueueInit(Queue* p);
void QueueDestroy(Queue* p);

void QPush(Queue* p,DataType x);
void Qpop(Queue* p);

DataType QueueFront(Queue* p);
DataType QueueBack(Queue* p);

int QSize(Queue* p);
bool QueueEmpty(Queue* p);


